package com.correo.vista.client.windows.event;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;

import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;

import com.correo.vista.client.windows.Correo;
import com.correo.vista.client.windows.componentes.menu.ItemMenuDinamicos;
import com.correo.vista.client.windows.ventanasInternas.InternalFrameNuevoMensaje;

public class ActionListenerNuevoMensaje implements ActionListener{

	private Correo 					correo;
	public ActionListenerNuevoMensaje(Correo correo) {
		this.correo = correo;
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		
		
		if(!InternalFrameNuevoMensaje.getInstance().isVisible()){			
				correo.getPanelPrincipal().add(InternalFrameNuevoMensaje.getInstance());
				InternalFrameNuevoMensaje.getInstance().setVisible(true);
				ItemMenuDinamicos item = new ItemMenuDinamicos(InternalFrameNuevoMensaje.getInstance(),correo.getPanelPrincipal());
				InternalFrameNuevoMensaje.getInstance().setItemMenu(item);
				correo.addItemMenu(item);	
			
		}
		try {
			InternalFrameNuevoMensaje.getInstance().setSelected(true);
			correo.setTextStatus(InternalFrameNuevoMensaje.getInstance().getTitle());
		} catch (PropertyVetoException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}					
		
		setListenerInternalFrameClose();
		setListenerItemMenu();
	}
	private void setListenerItemMenu() {
		InternalFrameNuevoMensaje.getInstance().getItemMenu().addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				try {
					InternalFrameNuevoMensaje.getInstance().setSelected(true);
				} catch (PropertyVetoException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
			
		});
		
	}
	private void setListenerInternalFrameClose() {
		InternalFrameNuevoMensaje.getInstance().addInternalFrameListener(new InternalFrameListener(){

			public void internalFrameActivated(InternalFrameEvent e) {				
				correo.setTextStatus(InternalFrameNuevoMensaje.getInstance().getTitle());
			}

			public void internalFrameClosed(InternalFrameEvent e) {
				correo.removeItemMenu(InternalFrameNuevoMensaje.getInstance().getItemMenu());				
			}

			public void internalFrameClosing(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}

			public void internalFrameDeactivated(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}

			public void internalFrameDeiconified(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}

			public void internalFrameIconified(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}

			public void internalFrameOpened(InternalFrameEvent e) {
				// TODO Auto-generated method stub
				
			}
			
		});
		
	}

}
